//=============================================================================

#ifndef AFILESWOMB_H
  #define AFILESWOMB_H

//=============================================================================

#include "doCommon.h"
#include "aCategory.h"

//=============================================================================

#define WOMB aFilesWomb::afGetInstance()

//=============================================================================

enum afbRet
{
  FWO_DONE = -128,
  FWO_INVALID_PROJECT_PATH,
  FWO_FOLDER_DOESNT_EXIST,
  FWO_CATEGORY_EXIST,
};

//=============================================================================

class aFilesWomb
{
  private:
    aFilesWomb();
    ~aFilesWomb();

  public:
    inline static aFilesWomb& afGetInstance() {static aFilesWomb womb; return womb;}
    inline aString afGetProjectPath()         {return projectPath + "\\";}

    bool afHaveCategory(const aString& name);
    afbRet afAddCategory(const aString& path, const aString& name);
    aString afGetPath(const aString& category, const aString& name);

  private:
    aString projectPath;
    aList<aCategory> categories;
};

//=============================================================================

#endif

//=============================================================================
